package com.ycz.springcloud.config;/*
 @author ycz
 @date 2021-08-19-15:29  
*/

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

@Configuration
public class ConfigBean {



    @Bean
    @LoadBalanced
    public RestTemplate MyRestTemplate(){
        return new RestTemplate();
    }

    /*
       @Bean
    @LoadBalanced
    public RestTemplate MyRestTemplate(RestTemplateBuilder restTemplateBuilder) {
//先获取到converter列表
        List<HttpMessageConverter<?>> converters = restTemplateBuilder.build().getMessageConverters();
        for(HttpMessageConverter<?> converter : converters){
//因为我们只想要jsonConverter支持对text/html的解析
            if(converter instanceof MappingJackson2HttpMessageConverter){
                try{
//先将原先支持的MediaType列表拷出
                    List<MediaType> mediaTypeList = new ArrayList<>(converter.getSupportedMediaTypes());
//加入对text/html的支持
                    mediaTypeList.add(MediaType.TEXT_HTML);
//将已经加入了text/html的MediaType支持列表设置为其支持的媒体类型列表
                    ((MappingJackson2HttpMessageConverter) converter).setSupportedMediaTypes(mediaTypeList);
                }catch(Exception e){
                    e.printStackTrace();
                }
            }
        }
        return restTemplateBuilder.build();
    }
     */

//    @Bean
//    public ShiroFilterFactoryBean getShiroFilterFactoryBean
//            (@Qualifier("securityManager") DefaultWebSecurityManager securityManager){
//        ShiroFilterFactoryBean bean=new ShiroFilterFactoryBean();
//        //设置安全管理器
//        bean.setSecurityManager(securityManager);
//        //添加shiro内置过滤器
//        /**
//         * anon : 无需认证即可通过
//         * authc : 必须认证才能通过
//         * user：必须拥有某个资源授权才能访问
//         * perms ： 拥有对某个资源的权限才能访问
//         * role ： 拥有某个角色权限才能使用
//         */
//        //  Map<String,String> filterMap=new LinkedHashMap<>();
////
////        filterMap.put("/user/add","perms[user:add]");
////        filterMap.put("/user/update","perms[user:update]");
////        filterMap.put("/sysuser/add.do","authc");
////        filterMap.put("/sysuser/page1.do","authc");
////        filterMap.put("/sysuser/page.do","authc");
////        bean.setFilterChainDefinitionMap(filterMap);
//
////        bean.setUnauthorizedUrl("/noauth");//设置未经授权无法登录
//
//        bean.setLoginUrl("/index");
//        return bean;
//    }
//
//    //DefaultWebSecurityManger:2
//    @Bean(name="securityManager")
//    public DefaultWebSecurityManager getDefaultSecurityManager(@Qualifier("userRealm")UserRealm userRealm){
//        DefaultWebSecurityManager securityManager =new DefaultWebSecurityManager();
//        //关联userRealm
//        securityManager.setRealm(userRealm);
//        return securityManager;
//    }
//
//    //创建Realm对象 需要自定义 ：1
//    @Bean(name="userRealm")
//    public UserRealm userRealm(){
//        return new UserRealm();
//    }

}
